package com.lsz.crm.mapper;

import com.lsz.crm.base.BaseMapper;
import com.lsz.crm.pojo.Permission;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;


@Mapper
@Repository
public interface PermissionMapper extends BaseMapper<Permission,Integer> {
    /**
     * 通过角色 id 查询所有的权限
     * @param roleId
     * @return
     */
    Integer countPermissionByRoleId(Integer roleId);

    /**
     * 通过角色 id 删除所有的权限
     * @param roleId
     */
    void deletePermissionsByRoleId(Integer roleId);

    /**
     * 查询角色拥有的所有资源
     * @param roleId
     * @return
     */
    List<Integer> queryRoleHasModuleIdsByRoleId(Integer roleId);


    /**
     * 通过用户 id 查询对应的资源列表（资源权限码）
     * @param userId
     * @return
     */
    List<String> queryUserHasRoleHasPermissionsByRoleId(Integer userId);

    /**
     * 通过资源id查询权限记录
     * @param id
     * @return
     */
    int countPermissionByModuleId(Integer id);

    /**
     * 通过资源id删除权限记录
     * @param id
     * @return
     */
    int deletePermissionsByModuleId(Integer id);
}